feat: widen requires-python to include Python 3.15 - #19942
feat: widen requires-python to include Python 3.15#19942vlad-scherbich wants to merge 17 commits into
Conversation
Keep the exclusive upper bound one version ahead of the declared classifier so pip still rejects the next CPython, matching the 3.14 pattern. Restore the SSI enablement note now that packaging declares 3.15.
Codeowners resolved asResolved from the full PR diff against |
Circular import analysis
|
Dependency direction analysis
|
|
BenchmarksBenchmark execution time: 2026-08-30 03:19:06 Comparing candidate commit 5be226c in PR branch Found 0 performance improvements and 7 performance regressions! Performance is the same for 579 metrics, 10 unstable metrics, 1 known flaky benchmarks, 17 flaky benchmarks without significant changes.
|
MAX is a support bound; a later bump must not retie CPython API floors. (cherry picked from commit e988dc5)
Compare to MAX/NEXT_MAX_INFO at call sites so __all__ is not a second pile of version names. (cherry picked from commit dc6ffe5)
mypy only narrows sys.version_info against literals, so named aliases left sys.monitoring reachable under python_version 3.10. (cherry picked from commit 33af304)
(cherry picked from commit 4557f4b)
(cherry picked from commit 128591b)
Pip upper bound is not customer support. SSI enablement is the #19843 gate, not this packaging change.
Lint extra bytecode==0.18.1 conflicts with runtime bytecode>=0.19.0 when uv resolves extras for requires-python that includes 3.15. (cherry picked from commit cac61ca)
Description
Widens requires-python >=3.9,<3.15 to >=3.9,<3.16 and adds Trove classifier Programming Language :: Python :: 3.15. Same next-version pip guard as 3.14.
Metadata and pip upper bound only. This is not customer support. wrap() is live on 3.15 via #19928 (fail-close at 3.16). cp315 wheels are still pruned.
Contributes to #17809
Testing
Inspected pyproject.toml. No runtime tests: publish paths are unchanged.
Risks
pip will accept Python 3.15 while cp315 wheels remain pruned.
Additional Notes
Merge blockers on this stack:
No support or SSI enablement reno: pip bound is not support; SSI gate is #19843.
changelog/no-changelog.